package linter.linterjava.service;

import com.github.pagehelper.PageInfo;
import linter.linterjava.POJO.DO.KnowledgeBase;
import linter.linterjava.POJO.DO.Note;
import linter.linterjava.POJO.DO.NoteKnowledgebase;
import com.baomidou.mybatisplus.extension.service.IService;
import linter.linterjava.POJO.DTO.NoteKnowledgebaseDTO;
import linter.linterjava.POJO.UtilDTO.MoveUtilDTO;
import linter.linterjava.POJO.UtilDTO.PageInfoDTO;
import linter.linterjava.custom.ResultVO;

/**
* @author 北煜
* @description 针对表【note_knowledgebase(笔记知识库详情表)】的数据库操作Service
* @createDate 2024-07-08 18:10:50
*/
public interface NoteKnowledgebaseService extends IService<NoteKnowledgebase> {

    /**
     * @param knowledgeBase 知识库笔记中间类 -- 需要知识库id、笔记id
     * @param uuid 用户id
     * @return 返回成功与否
     */
    String group(KnowledgeBase knowledgeBase, Long uuid);

    /**
     * @param noteKnowledgeBaseId 知识库id
     * @param uuid 用户id
     * @return 返回成功与否
     */
    String delNoteGruop(Long noteKnowledgeBaseId, Long uuid);

    /**
     * @param moveUtilDTO 知识库类
     * @return 返回成功与否
     */
    String moveNote(MoveUtilDTO moveUtilDTO, Long uuid);

    /**
     * @param noteKnowledgeBaseId 知识库id
     * @param noteId 笔记id
     * @param uuid 用户id
     * @return 返回成功与否
     */
    String delNoteGruopItem(Long noteKnowledgeBaseId, Long noteId, Long uuid);

    /**
     * @param noteKnowledgebaseDTO 知识库 -- 名称，简介
     * @param uuid 用户id
     * @return 返回成功与否
     */
    String createGroup(NoteKnowledgebaseDTO noteKnowledgebaseDTO, Long uuid);

    /**
     * @param uuid 用户id
     * @return 返回查询数据
     */
    PageInfo<NoteKnowledgebase> selectGroup(PageInfoDTO pageInfoDTO, Long uuid);

    /**
     * @param knowledgeBaseDTO 知识库类集合PageInfo
     * @param uuid 用户id
     * @return 返回查询数据
     */
    PageInfo<Note> selectGroupById(NoteKnowledgebaseDTO knowledgeBaseDTO, Long uuid);

    /**
     * @param knowledgeBaseDTO 知识库类 -- 需要知识库名称、知识库id
     * @param uuid 用户id
     * @return
     */
    String updateGroupName(NoteKnowledgebaseDTO knowledgeBaseDTO, Long uuid);
}
